#include<unistd.h>
#include<fcntl.h>
#include<string.h>
#include<sys/stat.h>
#include<stdlib.h>
#include<stdio.h>
#include<errno.h>
int main(int argc,char** argv)
{
    //pipe本质 伪文件，两个文件标识符，一个读，一个写端
    int fd[2];// fd[0]读端，fd[1]写端
    int ret=pipe(fd);//创建pipe 管道
    char *str="hello ubuntu\n";
    char buf[1024];

   int pid=  fork();

   //父子进程共享fd[2]，两个文件描述符
   if(pid==-1)
   {
       perror("fork fail\n");
       }else if(pid==0)
       {
           close(fd[1]);
           read(fd[0],buf,strlen(str));

           //输出在终端设备上：STDOUT_FILENO
           write(STDOUT_FILENO,buf,strlen(str));
           //子进程
           }else if(pid>0)
           {
               //父进程--写
               close(fd[0]);
               write(fd[1],str,strlen(str));
               close(fd[1]);
               close(fd[1]);

               }

return 0;
}
